cmake_minimum_required(VERSION 3.25)
project(algo)

set(CMAKE_CXX_STANDARD 20)

add_executable(dc_round_robin 1_divide_and_conquer/round_robin.cpp)
add_executable(dp_01knapsack 2_dynamic_programming/dp_01knapsack.cpp)
add_executable(dp_matrix_chain 2_dynamic_programming/dp_matrix_chain.cpp)
add_executable(dp_image_compress 2_dynamic_programming/dp_image_compress.cpp)
add_executable(greedy_mst_kruskal 3_greedy/kruskal.cpp)
add_executable(kruskal_oj 3_greedy/kruskal_oj.cpp)
add_executable(huffman 3_greedy/huffman.cpp)
# add_executable(dijkstra 3_greedy/dijkstra.cpp)
# add_executable(prim 3_greedy/prim.cpp)
# add_executable(n_queen 4_backtrack/n_queen.cpp)
# add_executable(tsp 4_backtrack/tsp.cpp)
# add_executable(bt_01_knapsack 4_backtrack/bt_01_knapsack.cpp)

# for Gnome Builder and KDevelop to work, following lines are required
#################################################
install(TARGETS dc_round_robin RUNTIME DESTINATION bin COMPONENT dc_round_robin)
install(TARGETS dp_01knapsack RUNTIME DESTINATION bin COMPONENT dp_01knapsack)
install(TARGETS dp_matrix_chain RUNTIME DESTINATION bin COMPONENT dp_matrix_chain)
install(TARGETS dp_image_compress RUNTIME DESTINATION bin COMPONENT dp_image_compress)
install(TARGETS kruskal_oj RUNTIME DESTINATION bin COMPONENT kruskal_oj)
install(TARGETS huffman RUNTIME DESTINATION bin COMPONENT huffman)
